package com.example.selenium.domain;

import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.annotation.JSONField;
import com.example.selenium.annotation.Excel;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.Date;

@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class WaybillDto2 implements Serializable {

    /*************************运单相关******************************/

    /**
     * 运易通的运单id，注意不是运单号
     */
    private String relWaybillId;

    @Excel(name = "外部运单号")
    @JSONField(name = "outWaybillId")
    private String trackId;

    @Excel(name = "运单建单时间")
    @JSONField(name = "waybillCreateTime")
    private String waybillCreateTime;

    @Excel(name = "项目名称")
    @JSONField(name = "projectName")
    private String projectName;

    @Excel(name = "货物名称")
    @JSONField(name = "goodsName")
    private String goodsName;



    @Excel(name = "货物数量")
    @JSONField(name = "goodsCount")
    private String goodsAmount;

    @Excel(name = "货物单位")
    @JSONField(name = "goodUnit")
    private String goodsUnits;



    @Excel(name = "货物类型")
    @JSONField(name = "goodsType")
    private String goodsType;


    @Excel(name = "业务类型")
    @JSONField(name = "businessType")
    private String bussinessType;

    @Excel(name = "托运人省份")
    @JSONField(name = "shipperProvince")
    private String tyProvince;

    @Excel(name = "托运人城市")
    @JSONField(name = "shipperCity")
    private String tyCity;

    @Excel(name = "托运人区域")
    @JSONField(name = "shipperDistrict")
    private String tyCounty;

    @Excel(name = "托运人单位")
    @JSONField(name = "shipperUnit")
    private String tyUnits;

    @Excel(name = "托运联系人")
    @JSONField(name = "shipperName")
    private String tyContacts;

    @Excel(name = "托运联系电话")
    @JSONField(name = "shipperPhone")
    private String tyContactsPhone;

    @Excel(name = "托运详细地址")
    @JSONField(name = "shipperaddress")
    private String tyDetailAddr;

    @Excel(name = "收货人省份")
    @JSONField(name = "consigneeProvince")
    private String shProvince;

    @Excel(name = "收货人城市")
    @JSONField(name = "consigneeCity")
    private String shCity;

    @Excel(name = "收货人区域")
    @JSONField(name = "consigneeDistrict")
    private String shCounty;

    @Excel(name = "收货人单位")
    @JSONField(name = "consigneeUnit")
    private String shUnits;

    @Excel(name = "收货联系人")
    @JSONField(name = "consigneeName")
    private String shContacts;

    @Excel(name = "收货联系电话")
    @JSONField(name = "consigneePhone")
    private String shContactsPhone;

    @Excel(name = "收货详细地址")
    @JSONField(name = "consigneeaddress")
    private String shDetailAddr;

    @Excel(name = "总运费")
    @JSONField(name = "total")
    private String total;

    // 预付款，总运费，到付款，回单押金 验证下是否有问题
    @Excel(name = "回单押金")
    @JSONField(name = "receiptDeposit")
    private String hd;

    @Excel(name = "预付")
    @JSONField(name = "advanceCharge")
    private String yf;

    @Excel(name = "到付")
    @JSONField(name = "cod")
    private String df;

    /**
     * 备注
     */
    @Excel(name = "备注")
    private String remark;


    @Excel(name = "起运时间")
    @JSONField(name = "shipmentStartTime")
    private String shipmentStartTime;

    @Excel(name = "到达时间")
    @JSONField(name = "shipmentEndTime")
    private String shipmentEndTime;




    /************************司机相关******************************/
    @Excel(name = "司机姓名")
    @JSONField(name = "driverName")
    private String driverName;

    @Excel(name = "司机手机号")
    @JSONField(name = "phoneNumber")
    private String driverPhone;

    @Excel(name = "司机身份证号")
    @JSONField(name = "idNumber")
    private String driverIdCard;

    @Excel(name = "身份证地址")
    @JSONField(name = "idAddress")
    private String idCardAddress;

    @Excel(name = "性别")
    @JSONField(name = "gender")
    private String driverSex;

    @Excel(name = "民族")
    @JSONField(name = "nation")
    private String driverNation;

    @Excel(name = "出生日期")
    @JSONField(name = "birthDate")
    private String driverBornDate;

    @Excel(name = "身份证签发机关")
    @JSONField(name = "authority")
    private String idCardOffice;

    @Excel(name = "身份证有效起始日期")
    @JSONField(name = "idStartDate")
    private String idCardStartDate;

    @Excel(name = "身份证有效结束日期")
    @JSONField(name = "idEndDate")
    private String idCardEndDate;

    @Excel(name = "身份证正面图片链接")
    @JSONField(name = "certificateFrontUrl")
    private String idCardFrontImgUrl;

    @Excel(name = "身份证背面图片链接")
    @JSONField(name = "certificateBackUrl")
    private String idCardBackImgUrl;

    @Excel(name = "国籍")
    @JSONField(name = "nationality")
    private String driverNationality;

    @Excel(name = "准驾车型")
    @JSONField(name = "typeLicense")
    private String drivingCarType;

    @Excel(name = "驾驶证有效起始日期")
    @JSONField(name = "driverStartTime")
    private String driverLicenseStartDate;

    @Excel(name = "驾驶证有效结束日期")
    @JSONField(name = "driverEndTime")
    private String driverLicenseEndDate;

    @Excel(name = "驾驶证初次领证日期")
    @JSONField(name = "firstgetCertification")
    private String driverLicenseGetDateFirst;

    @Excel(name = "驾驶证正面图片链接")
    @JSONField(name = "driverLicenseUrl")
    private String driverLicenseImgUrl;

    @Excel(name = "车牌号")
    @JSONField(name = "licensePlateNumber")
    private String carNumber;

    /*车长宽高好像有问题，需要验证下*/
    @Excel(name = "车高")
    @JSONField(name = "carHigh")
    private String carHeight;

    @Excel(name = "车宽")
    @JSONField(name = "carWidth")
    private String carWidth;

    @Excel(name = "车长")
    @JSONField(name = "carLegth")
    private String carLength;

    @Excel(name = "核定载重")
    @JSONField(name = "carWeight")
    private String tonnage;

    @Excel(name = "车辆类型")
    @JSONField(name = "carType")
    private String carType;

    @Excel(name = "车辆颜色")
    @JSONField(name = "carColor")
    private String carColor;

    @Excel(name = "所属人")
    @JSONField(name = "vehicleOwner")
    private String carOwner;

    @Excel(name = "汽车地址")
    @JSONField(name = "address")
    private String carAddress;

    @Excel(name = "使用性质")
    @JSONField(name = "natureUsage")
    private String userType;

    @Excel(name = "品牌型号")
    @JSONField(name = "brandType")
    private String model;

    @Excel(name = "车辆识别代码")
    @JSONField(name = "identificationCode")
    private String carIdentyCode;

    @Excel(name = "发动机号")
    @JSONField(name = "engineNumber")
    private String carEngineNumber;

    @Excel(name = "车辆能源类型")
    @JSONField(name = "carEnergyType")
    private String energyType;

    /**
     * 道路运输证号
     */
    @Excel(name = "道路运输证号")
    private String roadTranCertificateNumber;


    @Excel(name = "注册日期")
    @JSONField(name = "registrationDate")
    private String registerDate;

    @Excel(name = "发证日期")
    @JSONField(name = "dateIssue")
    private String issueDate;

    @Excel(name = "行驶证图片链接")
    @JSONField(name = "permitPicUrl")
    private String drivingImgUrl;


    /*************************支付记录相关******************************/

    @Excel(name = "收款人名称")
    @JSONField(name = "accountName")
    private String reciveName;

    @Excel(name = "收款人账号")
    @JSONField(name = "bankAccount")
    private String reciveCardNo;


    @Excel(name = "支付记录")
    @JSONField(name = "payInfo")
    private String payRecord;

    @Excel(name = "收款银行")
    @JSONField(name = "bank")
    private String reciveBankeName;

    /**
     * 运单回单图片
     */
    @Excel(name = "运单回单")
    @JSONField(name = "waybillRelevantUrl")
    private String waybillImg;


    @Excel(name = "运单状态")
    @JSONField(name = "waybillState")
    private String waybillStatus;

    /**
     * 支付单号
     */
    private String payWaybillNo;

    /**
     * 公司名称
     */
    private String companyName;

    /**
     * 公司id
     */
    private Integer companyId;

    @Excel(name = "创建人")
    @JSONField(name = "createBy")
    private String createBy;

    @Excel(name = "创建人名称")
    @JSONField(name = "createUserName")
    private String createUserName;

//    orderDate:  支付日期
//    payType： PROXY_PAY    FEE
//    payAmt： 金额
//    channelFlowNo：运盈通流水号
//    hostFlowNo：运单回执号


    public static void main(String[] args) {
//        Class<? extends Class> aClass = WaybillDto2.class.getClass();
//        System.out.println(aClass.getDeclaredFields());
        System.out.println(WaybillDto2.class.getDeclaredFields().length);
    }
}
